<%
=begin
apps: apache
platforms: kubernetes, tanzu-application-catalog
id: deploy_custom_application
title: Deploy a custom Web application
category: get-started
weight: 20
highlight: 20
=end %>

The Apache chart allows you to deploy a custom web application using one of the following methods:

* Cloning from a GitHub repository: Set *cloneHtdocsFromGit.enabled* to true and set the repository and branch using the *cloneHtdocsFromGit.repository* and *cloneHtdocsFromGit.branch* parameters. A sidecar will also pull the latest changes in an interval set by *cloneHtdocsFromGit.interval*.
* Providing a ConfigMap: Set the *htdocsConfigMap* value to mount a ConfigMap in the Apache *htdocs* folder.
* Using an existing PVC: Set the *htdocsPVC* value to mount a PersistentVolumeClaim with the web application content.

Here is an example of deploying a web application from a Git repository using the first method:

~~~
cloneHtdocsFromGit.enabled=true
cloneHtdocsFromGit.repository=https://github.com/mdn/beginner-html-site-styled.git
cloneHtdocsFromGit.branch=master
~~~

To use a custom *httpd.conf* file, mount it using the *httpdConfConfigMap* parameter, which references a Kubernetes ConfigMap with the contents of the *httpd.conf* file. Alternatively, copy the *httpd.conf* file to */files/httpd.conf* in the current working directory to mount it in the container.

To mount different virtual host configurations, use the *vhostsConfigMap* value. This is a pointer to a Kubernetes ConfigMap with the desired Apache virtual host configurations. You can also copy the virtual host configurations under the *files/vhosts/* directory in your current working directory to mount them as a ConfigMap in the container.
